#pragma once

#include "Singleton.h"

#include <map>

/****************************************************
  Finite State Machine. Holds all the states of game.
 ****************************************************/
class FiniteStateMachine : public Singleton
{
public:
        friend class Singleton;

	typedef std::map<const char *,void *> TypeMap;

        static std::string const * getClassName();

        // Set an entry
	int set(const char *, void *);
        // Get an entry
	void * get(const char *);
        // Set an integer
	int setInt(const char *, int);
        // Get an integer
	int getInt(const char *);

private:
	TypeMap * _hasher;

        FiniteStateMachine(void);
        virtual ~FiniteStateMachine(void);
};
